/*
 * Copyright (C) 2013 Félix Marín Ramírez | felixmurcia@gmail.com
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/*
 * DOCUMENTACION: http://documentacion-emple-depart.tk
 */
package adgui.modelo;

import java.sql.SQLException;

/**
 *
 * @author Félix Marín Ramírez | felixmurcia@gmail.com
 * @version 1.0
 */
public class ConsultaAltaDepart extends AbstractModel {

    private int filasAfectadas;

    /**
     * Constructor de la clase encargado de inicializar la clase de la que
     * hereda.
     *
     * @throws SQLException Lanza la excepción SQLException heredada de la clase
     * padre.
     */
    public ConsultaAltaDepart() throws SQLException, ClassNotFoundException {
        super();
    }

    /**
     *
     * @return Devuelve el número de filas afectadas en la operación DML.
     */
    public int getFilasAfectadas() {
        return this.filasAfectadas;
    }

    /**
     * Método encargado de calcular el número que tendrá el nuevo departamento.
     *
     * @return Devuelve el nuevo número de departamento.
     */
    public int getDeptNo() {
        return super.listaCodDep.get(super.listaCodDep.size() - 1) + 10;
    }

    /**
     * Método encargado de insertar el nuevo departamento en la base de datos.
     *
     * @param DNOMBRE Nombre del nuevo departamento.
     * @param LOC Nombre de la localidad en la que se situa el nuevo
     * departamento.
     * @throws SQLException Si se produce un error en la inserción de datos
     * lanzará una excepción.
     */
    public void altaDepartamento(final String DNOMBRE, final String LOC)
            throws SQLException, ClassNotFoundException {
        super.conexion();
        super.setConsulta("INSERT INTO depart VALUES (" + getDeptNo()
                + ",'" + DNOMBRE + "','" + LOC + "')");
        super.st = super.getConexion().createStatement();
        this.filasAfectadas = super.st.executeUpdate(super.getConsulta());

        super.cerrarConexion();
        super.cerrarStatements();
    }

    /**
     * Método que comprueba si existe el departamento introducido como
     * parametro.
     *
     * @param DNOMBRE Nombre del departamento buscado.
     * @return Devuelve true si el departamento introducido existe en la base de
     * datos.
     */
    public boolean existeDepartamento(final String DNOMBRE) {
        boolean bol = false;
        for (String dnombre : super.listaDepartamentos) {
            if (dnombre.equalsIgnoreCase(DNOMBRE)) {
                bol = true;
            }
        }
        return bol;
    }
}
